package com.arron.java基础.流.testio1;

import java.io.*;

public class TestIO1 {
    public static void main(String[] args) throws IOException {
        //InputStream按一个字节一个字节读数据，但是中文字符是2个字节，所以输出时为乱码，英文和其它一些特殊字符一个字节就可以，所以正常显示
        //java 中使用的是unicode编码，字符是两个字符表示，中文使用的是两个字节长度
        //FileInputStream fis =new FileInputStream("E:\\StudyCode\\DesignPattern\\src\\com\\arron\\java基础\\流\\testio1\\TestIO1.java");
        //总结：对文本数据读取时，使用字符流读取，只能处理文件信息；字节流可以处理所有的数据【文本、图片、音乐、电影等】
        FileReader fis =new FileReader("E:\\StudyCode\\DesignPattern\\src\\com\\arron\\java基础\\流\\testio1\\TestIO1.java");
        FileWriter fw =new FileWriter("d:/zhangsan.haha");
        int ch = fis.read();
        int cnt =0;
        while (ch!=-1)
        {
            fw.write(ch);
            System.out.printf("%c",(char)ch);
            ch = fis.read();
            ++cnt;
        }
        fw.flush();
        System.out.println("该文件的字符个数是："+cnt);
        fw.close();
        fis.close();
    }
}
